const { defineConfig } = require('@vue/cli-service');
const webpack = require('webpack');
const path = require('path');
const TerserPlugin = require('terser-webpack-plugin');
const packageInfo = require('./package.json');
module.exports = defineConfig({
	transpileDependencies: true,
	css: {
		extract: false
	},

	pluginOptions: {
		webpackBundleAnalyzer: {
			analyzerMode: 'static',
			openAnalyzer: false
		}
	},
	devServer: {
		https: true,
		client: {
			overlay: false
		}
	},
	configureWebpack: {
		output: {
			libraryExport: 'default'
		},

		plugins: [
			new webpack.BannerPlugin({
				entryOnly: true, // 是否仅在入口包中输出 banner 信息
				banner: 'ivcs-im' + `\n` + `Version ${packageInfo.version}` + `\n` + `Date: ${new Date()}`
			})
		],
		optimization: {
			minimize: true,
			minimizer: [
				new TerserPlugin({
					terserOptions: { compress: { drop_console: true } }
				})
			]
		}
	},
	// chainWebpack: config => {
	// 	const urlLoader = config.module.rule('images');
	// 	// 清除已有的所有 loader。
	// 	// 如果你不这样做，接下来的 loader 会附加在该规则现有的 loader 之后。
	// 	urlLoader.uses.clear();
	// 	// 添加要替换的 loader
	// 	urlLoader
	// 		.test(/\.(png|jpe?g|gif|svg)(\?.*)?$/)
	// 		.use('url-loader')
	// 		.loader('url-loader')
	// 		.options({
	// 			limit: 1024 * 50, // 8k
	// 			name: '[path][name].[ext]', // 利用[path]路径获取文件夹名称并设置文件名
	// 			fallback: 'file-loader', // 当超过8192byte时，会回退使用file-loader
	// 			context: path.resolve(__dirname, './src'), //过滤掉[path]的相对路径
	// 			publicPath: './' //采用根路径
	// 		});
	// },

	productionSourceMap: process.env.NODE_ENV != 'production'
});
